SQL - Dialog Parameter definieren
Unter Eigene Daten / Makro-Assistent - Schalter Parameter - Abfrageparameter
bearbeiten über den Schalter können Sie vorhandene Abfrageparameter bearbeiten. Mit dem Aufruf des Dialogs wird die SQL-Anweisung nach Parametern durchsucht – diese stehen dann in der Liste unter Parameter zur Bearbeitung zur Verfügung,
Abbildung 4.54: Dialog Parameter definieren
Übersicht
Parametername - Alle Eingaben (Ausnahme Einstellungen zur ”Automatik”) in diesem Dialog beziehen sich immer auf den selektierten Eintrag der Liste Parameter.
Datentyp - Dem selektierten Parameter ist der entsprechende Datentyp zuzuweisen.
Auswahlfeld - Zusätzlich zur manuellen Eingabe von Parameterwerten hat man auch die Möglichkeit, Schlüsselfelder aus einer Liste als Parameterwert zu holen. Dazu ist für den selektierten Parameter die Option ”Auswahlfeld” zu setzen und die entsprechende Tabelle einzustellen. Wollen Sie z.B. in einer Tabelle mit Belegen eine Auswertung für bestimmte Kunden machen, müssen Sie im Auswahlfeld die Tabelle Kunde wählen. Bei Eingabe des Parameterwertes können Sie dann aus einer Liste den entsprechenden Kunden wählen.
Vorgabewert - Als Standard wird immer der letzte verwendete Parameter beim Start der Abfrage vorgeschlagen. Tragen Sie einen Vorgabewert ein, wird dieser Wert beim Start des Makro verwendet. Für den Datentyp Date steht der Vorgabewert ” aktuelles Datum ” zur Verfügung.
Hinweistext - Vor der Ausführung der SQL-Anweisung erscheint ein Dialog zur Eingabe der Parameterwerte. Der hier je Parameter hinterlegte Hinweistext erscheint jeweils in der Statuszeile, wenn der Pfeil auf das Eingabefeld zeigt.
Parameterautomatik
Für die Abfrageparameter kann eingestellt werden, ob
- die Parameter vor dem Starten immer abgefragt werden (Beispiel siehe oben – die Parameternamen sind völlig beliebig)
- im aktiven Stammdialog die betroffenen Tabellenfelder gesucht und als Vorschlag für die Parameter angeboten werden
- im aktiven Stammdialog die betroffenen Tabellenfelder gesucht werden und, wenn alle Parameter gefunden wurden, die Anweisung ohne Parameterkontrolle gestartet wird.
SQL-Befehlssatz
SQL ist eine leistungsfähige Sprache, mit der Sie mit kurzen Anweisungen in relationalen Datenbanken operieren können. Die Sprachsyntax und der -umfang sind nicht einheitlich geregelt und können von Hersteller zu Hersteller variieren. Per SQL können Sie Abfragen erstellen, Tabellen und Indizes erzeugen, ändern und löschen sowie Felder manipulieren. Für die BDE-Version wird der Befehlssatz des Local-SQL und für die SQL-Version der Befehlssatz der Transact-SQL genutzt.
Hinweis: Erfahrungsgemäss werden vor allem SQL-Abfragen erstellt. Die aufgeführten Beispiele beziehen sich auf die SQL-Version.
Syntax
Die Abfragesyntax lautet:
SELECT [ALL|DISTINCT] {spalten|*}
FROM tabelle [AS alias] [tabelle [AS alias]]...
[WHERE {bedingung}]
[GROUP BY spalten [HAVING {bedingung|subquery}]]
[ORDER BY spalten [ASC|DESC]...]
Dabei wurden alle SQL-Begriffe in Grossbuchstaben geschrieben, alle zu ersetzenden Begriffe in Kleinbuchstaben. Teile, die nicht immer notwendig sind, stehen in eckigen Klammern und Teile, bei denen es mehrere Möglichkeiten gibt, stehen in geschweiften Klammern und sind durch einen senkrechten Strich geteilt. Die SQL-Syntax unterscheidet nicht zwischen Gross- und Kleinschreibung und benötigt keine Zeilentrennungen zwischen den Elementen.
Operatoren
Operatoren, die in Bedingungen Verwendung finden, nach ihrer Bindekraft geordnet:
Multiplikation |
* |
Division |
/ |
Addition |
|
Subtraktion |
- |
Gleichheit |
= |
Ungleichheit |
!= oder <> |
Vergleiche |
>, <, >=, <= |
Enthaltensein |
IN menge |
Nullwert |
IS [NOT] NULL |
Bereich |
BETWEEN start AND ende |
Ähnlichkeit |
LIKE muster mit wildcards % und _ |
Negation |
NOT |
logisches Und |
AND |
logisches Oder |
OR |
Weitere Funktionen
Runde Klammern werden zum Bilden von Belehnungen benutzt.
Zeichenkettenaddition |
|
Teilzeichenkette |
BDE: |
Kleinbuchstaben |
LOWER (string) |
Grossbuchstaben |
UPPER (string) |
Datumsentschlüsselung |
BDE: |
Länge eines Feldes |
nur SQL: LEN(string) |
Konvertieren von Ausdrücken |
CAST( Ausdruck AS FLOAT) |
Gruppierungsfunktionen
Gruppierungsfunktionen werden meistens in Verbindung mit der GROUP BY –Klausel verwendet.
Maximum der Spaltenwerte |
MAX |
Minimum der Spaltenwerte |
MIN |
Summe der Spaltenwerte |
SUM |
Durchschnitt der Spaltenwerte |
AVG |
Anzahl der Datenbankeinträge |
COUNT |
Zeichenketten sind in einfache Anführungsstriche zu setzen, gebrochene Zahlen müssen mit Dezimalpunkt geschrieben werden, Datumsangaben in der Syntax
tt.mm.jjjj (tt: Tag, mm: Monat, jjjj: Jahr).
Kommentare
Kommentare werden mit /* eingeleitet und enden mit */. Mit dem Tastenkürzel [Alt] + [K] kann ein im Editor selektierter Text auskommentiert werden.
Hinweis: Weitere Funktionen können Sie für Local SQL aus der Hilfedatei BDESQL.hlp der Installations-CD und für Transact-SQL aus der Hilfe des SQL-Servers entnehmen.
Beispiel
- Auflistung aller Felder und Sätze aus der Bankendatei:
select * from BANK
- Auflistung aller Filialen der Dresdner Bank, mit der grössten Banknummer beginnend. Beachten Sie die richtige Gross- und Kleinschreibung in der WHERE-Klausel:
select Banknummer, Name from BANK
where Name like ’Raiffeisenbank%’
order by Banknummer desc
- Kundenabhängige Aufsummierung aller offenen Posten aus Rechnungen im Mandanten. Ausserdem werden die Anzahl und die durchschnittliche Höhe des OP‘s angezeigt:
select KLNr, SUM(Offen) as Gesamt,
COUNT(Offen) as Anzahl, AVG(Offen) as Durchschnitt
from OPOS
where OPTyp=’1’ and Status=’O’
group by KLNr
- Anzeige von Kundennummer und Firma/Name von allen (unterschiedlichen - distinct) Kunden, die offene Rechnungen besitzen:
select distinct OPOS.KLNr, KUNDEN.Anzeigename
from OPOS join KUNDEN
on OPOS.KLNr=KUNDEN.Nummer
where OPOS.OPTyp=’1’ and OPOS.Status=’O’